Offline access of a network based application

ABSTRACT

The present disclosure relates to an interactive computing system configured to provide a network-based application that can provide offline functionality. A user computing device, such as a mobile device, access a network-based application through an interactive computing system. The network-based application can be configured to provide transaction information sufficient to conduct a transaction with a point-of-sale terminal when the network application is not in communication with the interactive computing system.

INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS

Any and all applications for which a foreign or domestic priority claimis made are identified in the Application Data Sheet as filed with thepresent application and are incorporated by reference under 37 CFR 1.57and made a part of this specification.

BACKGROUND

Generally described, computing devices, such as mobile devices, canprovide users with various functionality or functions through theexecution of applications. In one aspect, a computing device, oftenreferred to as a client computing device, can execute software code,referred to as a software application, that has been configuredspecifically for the operating system or operating environmentassociated with the client device. Based on their dependence to theoperating system, such custom applications can be referred to as nativeapplication. In another aspect, network-based applications, alsoreferred to as web apps or web applications, are hosted by browsersoftware applications are used ubiquitously by users on communicationnetworks, such as the Internet. Common web applications includeelectronic mail, online retail sales, online auctions, wikis and manyother functions that are available for use over a network.

Unlike native applications, web applications allows for the developmentof an application that can be independent of a type of computer oroperating system that is hosting the browser software application. Webapplications commonly use a combination of server-side script (such asactive server pages (ASP), PHP, etc.) and client-side script (such ashypertext markup language (HTML), JavaScript, etc.) to implement the webapplication. The client-side script can determine the presentation ofinformation on the browser while the server-side script can beconfigured to store and retrieve information from a server.

Because web applications are hosted by a browser on a client computingdevice independent of operating environment, a user can use anycomputing device and or operating system that has a browser capable ofexecuting on the client device. Web applications are popular due to theubiquity of browsers, and the convenience of using a browser as aclient. The ability to update and maintain web application withoutdistributing and installing software on potentially thousands of clientcomputers is an important reason for their popularity, as is theinherent support for cross-platform compatibility.

In a typical web application, a user is required to be in activecommunication with a network in order to access the content andfunctionality associated with the web application. This can lead todifficulties if a user needs to use the web application in an area haslittle or no network connectivity.

BRIEF DESCRIPTION OF THE DRAWINGS

Throughout the drawings, reference numbers are re-used to indicatecorrespondence between referenced elements. The drawings are provided toillustrate embodiments described herein and not to limit the scopethereof.

FIG. 1 illustrates a block diagram depicting an illustrative embodimentof a computing environment for an interactive computing system.

FIG. 2 illustrates components of an embodiment of a user computingdevice.

FIGS. 3A and 3B illustrate an embodiment of a state flow diagram inwhich a user computing device is configured to implement offlinefunctionality in a network-based application.

FIGS. 4A and 4B illustrate an embodiment of user interfaces of anetwork-based application implemented on a user computing device.

FIGS. 5A and 5B illustrate an embodiment of user interfaces of thenetwork-based application implementing functionality of thenetwork-based application.

FIGS. 6A through 6C illustrate another embodiment of user interfaces ofthe network-based application implementing functionality of thenetwork-based application.

FIG. 7 is an embodiment of a flow diagram depicting an illustrativeroutine for implementing offline functionality in a network-basedapplication.

DETAILED DESCRIPTION

Generally described, the present disclosure relates to an interactivecomputing system configured to provide a network-based application thatcan provide offline functionality. A user computing device can accessthe network-based application through the interactive computing system.The network-based application can be used by the user device to providetransaction information to a point-of-sale terminal in order to conducta transaction when the network-based application is not in communicationwith the interactive computing system. For example, the network-basedapplication can facilitate point-of-sale transactions even in scenarioswhen the user computing device does not have network connectivity orlimited connectivity.

Illustratively, the network-based application can use an account-basedsystem for accessing the content and functionality associated with thenetwork-based application. The network-based application can define anonline feature set and an offline feature set. The online feature setincludes features available to a user when the user device is incommunication with the interactive computing system and the offlinefeature set includes features available to the user when the user deviceis not in communication with the interactive computing system. Theoffline feature set can be accessed and utilized by the network-basedapplication based on user account information, also referred to as userinformation, and application information stored in an application cachewithout requiring communication with the interactive computing system.

When in an offline mode, the network-based application can be configuredto perform functions based on user account information. For example, thenetwork-based application can provide a point-of-sale terminal withinformation sufficient to authorize a transaction. The information caninclude a computer readable code that is provided to the point-of-saleterminal. The computer readable code can include the user informationembedded within the code. The point-of-sale terminal can communicatewith the interactive computing system to authorize the transaction. Eventhough the network-based application is not in communication withinteractive computing system, the network-based application can providea user with the ability to provide sufficient information at thepoint-of-sale terminal to execute the transaction.

Illustratively, in some embodiment, the network-based application can beassociated with a retail establishment, such as a food servicesprovider. The network-based application can provide a user withfunctionality for managing one or more user accounts associated with thefood service establishment, often provided as an account card having abar code that can be read by a point-of-sale terminal. The user accountcards can be associated with a specific user account. The cards can beloyalty cards, such as cards that accumulate points based on purchasesmade by the user, account cards, such as gift cards or charge cards thathave a monetary account value for purchasing goods or services from thefood service establishment, or other types of cards associated with theuser account. In accordance with some embodiments, the network-basedapplication can manage information associated with each card, such asupdating card information, determining account balances, increasingaccount balances, associating additional cards with the user account,and providing other functionality for managing cards associated with theuser account. The network-based application can be configured to providea computer readable code embedded with user account information of anaccount card, such as a card identifier, an account identifier, anaccount balance, a non-monetary balance, and/or other user accountinformation. Each account card can be associated with a differentcomputer readable code. The computer readable code can be used toauthorize payment of a transaction at the food service establishment.

In some embodiments, the network-based application can be configured toperform other functions associated with a food service establishment,such as viewing a menu or identifying a food service establishmentclosest to the user, generating orders that can be provided to theestablishment. In some embodiments, the network-based application can beconfigured create a custom order that can be used to generate computerreadable code associated with that order. A user can then provide theorder to the food service establishment by presenting the machinereadable code to a point-of-sale terminal. In some embodiments, themachine readable code for the order can be combined with the machinereadable code for the payment information.

Although aspects of the present disclosure will be described with regardto an illustrative network-based application with offline functionality,one skilled in the relevant art will appreciate that the disclosedembodiments are illustrative in nature and should not be construed aslimiting. Still further, although a number of illustrative examples willbe discussed with regard to the present disclosure, such examples shouldnot necessarily be construed as limiting.

FIG. 1 illustrates a network environment 100 for an interactivecomputing system that is configured to provide a network-basedapplication with offline functionality. The networking environment 100includes one or more user devices 104, an interactive computing system110 and one or more point-of-sale terminals 120 in communication with anetwork 102. The user device 104 includes a browser 106 with anapplication cache 108. The interactive computing system 110 includes anapplication module 112, a user account module 114, an application datastore 116 and a user data store 118.

The user device 104 can be representative of a plurality of user devices104 that can communicate with an interactive computing system 110through a network 102. The user computing devices 104 can correspond toa wide variety of devices or components that are capable of initiating,receiving or facilitating communications over the communication network102 including, but not limited to, personal computing devices,electronic book readers (e.g., e-book readers), hand held computingdevices, integrated components for inclusion in computing devices, homeelectronics, appliances, vehicles, machinery, landline telephones,network-based telephones (e.g., voice over IP (“VoIP”), cordlesstelephones, cellular telephones, smart phones, modems, personal digitalassistants, laptop computers, gaming devices, media devices, and thelike. In an illustrative embodiment, the user computing devices 104include a wide variety of software and hardware components forestablishing communications over one or more communication networks,including wireless communication network, a wired communication network,or an IP-based telecommunication network. Illustrative components of auser computing device 104 will be described in greater detail withregard to FIG. 2.

The communication network 102 may be any wired network, wireless networkor combination thereof. In addition, the communication network 102 maybe a personal area network, local area network, wide area network, cablenetwork, satellite network, cellular telephone network or combinationthereof. Protocols and components for communicating via the Internet orany of the other aforementioned types of communication networks are wellknown to those skilled in the art of computer communications and thus,need not be described in more detail herein.

The point of sale terminal 120 can be in communication with theinteractive computing system 110 over the network 102. Additionally, thepoint of sale terminal 120 can communicate directly with the userdevices 104, such as via short range radio, direct wired connection,optical connections, and the like. The point-of-sale terminal 120 can bea terminal at a retail establishment, food service establishment,stand-alone kiosk, mobile device or other type of point-of-saleterminal. The point-of-sale terminal 120 can configured to have ascanning device or other mechanism capable of reading computer readablecodes, such as bar codes, QR codes, or other visible computer readablecodes.

Illustratively, the point-of-sale terminal 120 can have software andhardware configured to wirelessly communicate using radio frequency(RF), Bluetooth®, or other type of wireless communication protocol. Thepoint-of-sale terminal 120 can be configured to receive a computerreadable code from the user device 104 as part of a transaction andcommunicate information contained in the computer readable code to theinteractive computing system 110 over the network. The interactivecomputing system 110 can authorize the information received from thepoint-of-sale terminal 120 in order to authorize the transaction. Thepoint-of-sale terminal 120 can be configured to transmit information tothe user device that can be used to update the network-based applicationbased on the information received from the interactive computing system.In some embodiments, the point-of-sale terminal 120 can be associatedwith the same entity as the interactive computing system 110. Forexample, the interactive computing system 110 and point-of-sale terminal120 can be associated with a specific food service establishment.

The interactive computing system 110 includes an application module 112,a user account module 114, an application data store 116 and a user datastore 118. The interactive computing system 110 may be implemented inhardware and/or software and may, for instance, include one or moreservers having physical computer hardware configured to implementcomputer executable instructions for performing various features thatwill be described herein. The one or more servers may be geographicallydisbursed or geographically co-located, for instance, in one or moredata centers.

The interactive computing system 110 can include servers, which cancommunicate with the user devices 104 over the network 102 and which canprovide access to various services of the interactive computing system110. The services of the interactive computing system 110 can beimplemented by the content module 112 in conjunction with theauthentication module 114. These services can be implemented in physicalcomputer hardware on the servers or in separate computing devices.Moreover, the processing of the various components or services of theinteractive computing system 110 can be distributed across multiplemachines, networks, or other computing resources. The various componentsor services of the interactive computing system 110 can also beimplemented in one or more virtual machines or hosted computingenvironment (e.g., “cloud”) resources, rather than in dedicated servers.Likewise, the data repositories shown can represent local and/or remote,physical and/or logical data storage, including, for example, storagearea networks or other distributed storage systems. Executable codemodules that implement various functionalities of the interactivecomputing system 110 can be stored in the content data store 116 anduser data store 118 on memories of the servers and/or on other types ofnon-transitory computer-readable storage media. The interactivecomputing system 110 can be configured so that each of the componentsshown can communicate with any other components.

The application module 112 can be configured to implement anetwork-based application on the user device. The application module 112defines the features, content and functionality of the network-basedapplication. The application module 112 can include executable codemodules, for implementing the various functionalities of thenetwork-based application, including server-side code modules configuredto be implemented by the interactive computing system 110 andclient-side code modules configured to be implemented by the user device104. The application module 112 can define the user interface anddisplay parameters of the network-based application.

The network-based application can utilize an account-based system forcontrolling access to the features and functionality associated with thenetwork-based application, such as an email account. The network-basedapplication can store user information and general applicationinformation in an application cache on the user device. The applicationmodule 112 can be configured to define an online feature set and anoffline feature set. The online feature set includes the content andfunctionality that are available to a user when the user device is incommunication with the interactive computing system. The offline featureset includes the content and functionality of the network-basedapplication that are available to the user when the user device is notin communication with the interactive computing system. The offlinefeature set can be a subset of the online feature set.

The offline feature set can be accessed and utilized by thenetwork-based application based on the user information and applicationinformation stored in the application cache without requiring aconnection to the interactive computing system. The application cachecan be configured to store functionality and content associated with thenetwork-based application. In addition to the functionality and contentassociated with the web application the application cache can also storeuser account information associated with the application. In someembodiments, the application cache can store user account informationfor a plurality of user accounts. The interactive computing system canflag information that requires an update. The updated information can bereceived by the user device and stored in the user device applicationcache.

In an illustrative example of offline functionality, a network-basedapplication associated with a food service establishment can enable auser to prepare a custom order and provide payment to the food serviceestablishment based on the user account information and applicationinformation stored in the application cache.

The application module 112 is in communication with the application datastore 116. The application data store 116 can include any content ordata associated with the operation and functionality of thenetwork-based application. The application data store 116 can representlocal and/or remote, physical and/or logical data storage, including,for example, storage area networks or other distributed storage systems.

The user account module 114 can be configured to perform actionsassociated with information contained within user accounts. For examplethe user account module can be configured to authenticate authenticationcredentials provided by the application and interact with thepoint-of-sale terminal 120 in order to authorize transactions associatedwith information stored within a user account. The user account modulecan also be configured to update the user account when information isreceived that modifies the information stored in the user data store118.

The user data store 118 can store the user information associated witheach user account of the interactive computing system. The user accountinformation can include user preferences, personal information,financial information, and other account specific information. Thefinancial information can include information such as credit cardinformation, store card balances, or other financial informationassociated with the user account, such as recurring subscriptions.

FIG. 2 illustrates components of an embodiment of a user computingdevice 104, such as a mobile telephone. The user computing device 104may include one or more processing units 202, such as one or more CPUs.The user computing device 104 may also include system memory 204, whichmay correspond to any combination of volatile and/or non-volatilecomputer-readable storage media. The system memory 204 may storeinformation which provides an operating system module 206, variousprogram modules 208, program data 210, and other modules. The userdevice 104 can have browser software installed in system memory 204,program modules 208 and/or program data 210.

The browser software can be configured to have an application cache. Theapplication cache can be configured to store the information receivedfrom the interactive computing system for the network-based application.When the browser interacts with the web application the browser canreceive information associated with the application and store theinformation in the application cache. The information stored in theapplication cache can include application information and user accountinformation.

In either an online mode or an offline mode, the network-basedapplication can be retrieved from application cache before communicatingwith the interactive computing system. By loading the application fromthe application cache first, the network-based application can decreaseload times, reduce bandwidth requirements usage of the application andincrease performance.

The user computing device 104 performs functions by using the processingunit(s) 202 to execute modules stored in the system memory 204. The usercomputing device 104 may also include one or more input devices 212(keyboard, mouse device, specialized selection keys, etc.) and one ormore output devices 214 (displays, printers, audio output mechanisms,etc.). One skilled in the relevant art will appreciate that additionalor alternative software modules and/or hardware components may also beincluded in the user computing device 104 to carry out other intendedfunctions such as mobile telephone functions.

With continued reference to FIG. 2, the user computing device 104 mayalso include a battery 222, one or more types of removable storage 216and one or more types of non-removable storage 218. In some embodimentsthe device can be connected to an external power source, such as an ACpower outlet. Still further, the user computing device 104 can includecommunication components 220, such as a cellular transceiver and awireless transceiver, for facilitating communication via wired andwireless communication networks. These transceivers facilitate suchcommunication using various communication protocols including, but notlimited to, Bluetooth, the family of IEEE 802.11 technical standards(“WiFi”), the IEEE 802.16 standards (“WiMax), short message service(“SMS”), voice over IP (“VoIP”) as well as various generation cellularair interface protocols (including, but not limited to, air interfaceprotocols based on code division multiplex access (CDMA), time divisionmultiple access (TDMA), global system for mobile communications (GSM),wireband code division multiplex access (WCDMA), code division multiplexaccess 3^(rd) generation (CDMA1040), time division synchronous codedivision multiple access (TD-SCDMA), wavelength and time divisionmultiple access (WTDMA), long term evolution (LTE), orthogonal frequencydivision multiple access (OFDMA), and similar technologies).

The above-enumerated list of components is representative and is notexhaustive of the types of functions performed, or componentsimplemented, by the user computing device 104. One skilled in therelevant art will appreciate that additional or alternative componentsmay also be included in the user computing device 104 to carry out otherintended functions.

FIGS. 3A and 3B illustrate state diagrams showing interactions between apoint of sale terminal 120, a browser 106, an application cache 108 andan interactive computing system 110. FIG. 3A illustrates when thenetwork-based application is operating in an online mode and is incommunication with the interactive computing system. FIG. 3B illustrateswhen the network-based application is operating in an offline mode andis not in communication with the interactive computing system 110.

At (1), the network-based application requests information from theinteractive computing system. The request can be made when the userdevice accesses the network-based application through a browser. Therequest may include requests for all of the information associated withthe network-based application, a portion of the information associatedwith the network-based application and/or updates to the informationstored in the application cache. The network-based application canrequest information that is designated as not being stored in theapplication cache.

At (2), the interactive computing system processes the request from thenetwork-based application. The request can identify applicationinformation and user account information. The request may be anauthentication request. For an authentication request, the request mayinclude authentication credentials for a user account that can beauthenticated by the user account module. The authentication credentialscan include an account identifier and password associated with a useraccount stored on the interactive computing system. If theauthentication is successful, the interactive computing system canprovide access to the application.

At (3), the interactive computing system provides applicationinformation and/or user account information to the device. At (4) thebrowser stores the application information and/or the user informationin the application cache. The application information can includeinformation that applies to all users that utilize the network-basedapplication. For example, a network-based application has informationthat every user of application receives, such as user interface,formatting, and other application information. The user information canbe information associated with a specific user account and can be storedin a user data store on the interactive computing system. The actionsassociated with (1) through (4) can be completed as necessary until theapplication can be implemented within the browser.

At (5), the user can interact with the network-based application andutilize the content and functionality provided in the network-basedapplication in the online feature set. For example, the user can updateuser account information stored on the interactive computing system.Updates to the user account information on the network-based applicationcan be communicated back to the interactive computing system. As theinformation is communicated between the interactive computing system andthe browser, the information in the application cache can be continuallyupdated so that the user device is up-to-date with the most recentinformation. The updated information can be used when the network-basedapplication is operated in the offline mode.

FIG. 3B illustrates an offline mode of operation for the network-basedapplication. At (1), the browser 106 requests and loads thenetwork-based application from the application cache 108. In someembodiments, the user may need to provide authentication credentials toaccess the network-based application. At (2), the application cache 108provides the network-based application to the browser 106. Ifauthentication is needed, the network-based application can use theinformation in the application cache to authenticate the user and accessthe correct user account.

At (3), the user device can interact with the network-based application.The network-based application may have an offline feature set thatprovides at least a portion of the functionality of the online featureset. In the offline mode, the network-based application is not be ableto update information in the application with information from theinteractive computing system. In offline mode the network-basedapplication can provide access to user account information. In someembodiments, the network-based application may default to the last useraccount accessed in online mode or it may provide an authenticationinterface that the user logs into in order to access the user account.Authentication of the user account may be implemented in accordance withinformation stored in the application cache. In some embodiments, thenetwork-based application may use a web object, such as a cookie, forstoring information that the network-based application can use toauthenticate and connect the user to a user account. When the user isconnected to the user account, the user can access functions andinformation that utilize user account information. The offline featureset can contain limited functionality for updating user accountinformation such as financial information, adding funds to an account,or other functionality that requires a network connection.

The offline mode feature set can include functionality that allows auser to interact with user account information, such as financialinformation. For example, the network-based application can use the useraccount information stored in the application cached to authorize thepayment of a transaction at a point-of-sale terminal. In someembodiments, the network-based application can generate a computerreadable code that can communicate user information to the point-of-saleterminal, which can be used by the point-of-sale terminal to authorize atransaction.

In some embodiments, an account can have one or more virtual and/orphysical cards associated with the user account. The cards can beloyalty cards, such as cards that accumulate points based on purchasesmade by the user, account cards, such as gift cards or charge cards thathave a monetary account value for purchasing goods or services, or othertypes of cards associated with the user account. Each card can include acard identifier associated with the card, such as a card number oraccount number. In some embodiments, the card can include an accountbalance.

The user information can be used by the network-based application toprovide the point-of-sale terminal with transaction information toauthorize a transaction. The point-of-sale terminal can use the cardidentifier to authorize the transaction based on information stored inthe user data store on the interactive computing system. Thenetwork-based application can provide transaction information to thepoint-of-sale terminal. In some embodiments, the transaction informationincludes computer readable code. The computer readable code can begenerated by the network-based application. In some embodiments, thecomputer readable code can be generated by the interactive computingsystem and stored in application cache. The computer readable code caninclude the user information embedded within the code. The computerreadable code can be a bar code, QR code, radio frequency (RF)identification code, or other type of computer generated code. Thecomputer generated code can be a visible code or a code that istransmitted to the point-of-sale using near field communicationtechnologies such as RF, Bluetooth® or other technologies forcommunicating wirelessly over a relatively short distance. In someembodiments, the computer readable code can include a card identifierand a custom order. For example, the network-based application couldgenerate a custom order for the user and combine the custom orderinformation with and the card information.

At (4), transaction information, such as a computer generated code, canbe provided to the point-of-sale terminal for a transaction. Thetransaction information can include instructions, a computer readablecode, or other type of information that the user can present to thepoint-of-sale terminal. The transaction information includes at least aportion of the user account information stored in the application cache.For example the network-based application can generate a computergenerated code that has user account information embedded in thecomputer generated code. In some embodiments, the user accountinformation includes a card identifier, an account balance associatedwith identified card, a user account identifier, a non-monetary accountbalance, and/or other information that can be used to by thepoint-of-sale terminal for processing the transaction. The transactioninformation can be provided in order to authorize payment of thetransaction.

At (5), the point-of-sale terminal processes the transaction informationprovided by the network-based application and transmits an authorizationrequest to the interactive computing system based, at least in part, onthe transaction information. The point-of-sale terminal can transmit thetransaction information to the interactive computing system forauthentication. In some embodiments, the network-based application mayprovide sufficient information such that the point-of-sale terminal canauthorize the transaction without requesting authorization from theinteractive computing system. For example, the transaction informationmay include a card identifier and an account balance.

At (6), the interactive computing system processes the authorizationrequest based on the transaction information provided by thepoint-of-sale terminal. In an exemplary embodiment, the user accountmodule of the interactive computing system can determine whether toauthorize or deny the transaction request. The transaction informationis used to identify a user account stored in the user data store. Theuser account module can approve or deny the authorization request basedon the user account information. For example, the user account modulecan determine whether there are sufficient or insufficient funds for theproposed transaction.

At (7), the interactive computing system sends the response back to thepoint-of-sale terminal, approving or denying the transaction. Theinteractive computing system can also update the user accountinformation based on the result of the transaction. The next time thebrowser accesses the network-based application on the interactivecomputing system can provide updated user information to the browser forstorage in the application cache.

FIG. 4A illustrates a user interface 410 of a network-based applicationhaving a plurality of user inputs for a user to provide authenticationcredentials for accessing the network-based application. The login userinterface 410 includes a plurality of authorization inputs, including ausername input 412 and a password input 414. When the user selects thelogin user input 416, the authentication credentials provided by theuser to inputs 412 and 414 can be provided to the interactive computingsystem 110 for authentication. After the user device completes theauthentication, the user device can be logged into the network-basedapplication under the user account associated with the authenticationcredentials. In some embodiments, the login user interface can beaccessed in the offline mode and the online mode of the network-basedapplication.

FIG. 4B illustrates a user interface 420 for displaying content providedby the network-based application. The user interface 420 displayscontent user controls, including an order control 422, a drinks control424, a food control 426, a payment control 428, and a user preferencescontrol 430. Each of these controls can be assigned specific functionsin accordance with the functionality assigned by the application module112. When in an online mode the user can have access to the features ofthe network-based application defined by the online feature set. When inthe offline mode the user can access a subset of features provided bythe network-based application as defined by the offline feature set.Only features associated with the offline feature set can accessed whenthe user is in the offline mode. In some embodiments, visualcharacteristics of controls that are not associated with the offlinefeature set can be modified, for example, a control can be dimmed orgreyed out to illustrate that the control or object is not functioning.In some embodiments, objects that would require a network connection tofunction can fall back on the most recent information received from theinteractive computing system. In such a case, the information may not bethe most current information that would be available from theinteractive computing system.

FIGS. 5A and 5B illustrate an embodiment of a network-based applicationthat can implement general functions that use application informationstored in the application cache. In this embodiment, the user cangenerate, reproduce or recall a computer readable code that represents acustom food order. FIG. 5A illustrates a user interface 340 showing anorder 512 created by the user. The order interface 510 illustratescontent that is available to user in the offline feature set. The order512 includes a plurality of items selected by the user, a costassociated with the items and an order total. In this illustrativeexample, the user can access a menu, create one or more orders, add orremove items from the proposed order, and generate a custom order code.After the user creates the order, the user can generate the custom orderby selecting the control 514.

FIG. 5B illustrates an interface 520 showing an embodiment of thegenerated custom order. The generated order can be represented by amachine readable code 522. The machine readable code containing theorder items of the custom order could be presented at a point-of-saleterminal for transmission of the order to a food service establishmentfor preparation. In some embodiments the use can choose to save theorder to their user account with the control 524. FIGS. 5A and 5B merelyillustrate one exemplary embodiment of functionality that could beassociated with a network-based application that could be performedwhile the network-based application is operating in an offline mode. Thenetwork-based application can have different permutations orfunctionality dependent upon the design of the web application.Additionally, in some embodiments, at least some portion of the machinereadable codes may be pre-generated and stored by the user devices. Insuch embodiments, the user device may recall at least portions of themachine readable code in response to the generation of order.

FIGS. 6A through 6C illustrate network-based application functionalitythat utilizes user information that is associated with a specific useraccount, whereas FIGS. 5A and 5B illustrate general functionalityassociated with application information. FIGS. 6A through 6C showsfunctionality associated with providing a virtual card, also referred toas an account card, for usage at an establishment associated with thevirtual card. FIG. 6A illustrates a user interface 610 has variousoptions including the card balance 612, order information 614; paymentinformation 616 and a card reload function 618. The card balance 612shows the balance of the card selected as the current method of payment.The card reload function 618 would not be available in the offline modebecause it would require network connectivity in order to add funds to acard.

FIG. 6B illustrates a payment information user interface 620. In thisembodiment the user interface 620 shows a virtual card 622. The virtualcard 622 can include identification information such as user nameassociated with the card 624, a card nickname 626, and a card identifieror account number 628. The interface 620 can also continue to displaythe card balance 612 of the currently selected virtual card. In someembodiments where the user account has a plurality of virtual cardsassociated with the account, the network-based application may providethe user with an interface for selecting the virtual to use as thepayment card. In such a case the card balance can be updated to show thebalance of the card selected for payment.

FIG. 6C illustrates an embodiment of additional information associatedwith the virtual card selected for payment. In the illustratedembodiment, the backside 632 of the card is illustrated. In oneembodiment the user could select the virtual card 622 to transition tothe backside 632. In some embodiments, the user can use a touchbased-control, such as tapping the card 622 in order to cause the cardto flip over to reveal the backside 632 and show the computer readablecode 634. The computer readable code 634 includes transactioninformation that a point-of-sale terminal can use approve or deny atransaction.

In some embodiments the computer readable code 634 can providetransaction information that the point-of-sale terminal can use tocommunicate with the interactive computing system in order to approve atransaction. For example, the computer readable code 634 can provide acard identifier, a user account identifier, an account balance, and/orother information. In some embodiments, the computer readable code 634can provide information to the point-of-sale terminal that can be usedby the point-of-sale terminal to approve the transaction, such as a cardaccount number and an account balance. Based on this information thepoint of sale terminal could authorize the transaction. When the pointof sale terminal authorizes the transaction, the network basedapplication may not automatically update, but the point of sale terminalcan transfer the information to the interactive computing system. Theinteractive computing system can use that information to update the useraccount information associated with the virtual card. When thenetwork-based application goes back to online mode, the network-basedapplication receives an update to the user account information based onthat transaction with the point of sale terminal.

FIG. 7 illustrates a flowchart of an embodiment of a routine 700 foroffline usage of user account data. The routine 700 can be implementedby a browser 106 executing a network-based application. At block 702 anetwork-based application is loaded into a browser on a user device froman application cache of the browser. The network-based application isloaded based on information previously provided by an interactivecomputing system. The information stored in the application cachedincludes application information and user information.

At block 704 the network-based application authorizes access to a useraccount. Access to the user account can be granted based onauthentication credentials provided by a user of the network-basedapplication. In some embodiments, access to the user account can begranted based on a content object, such as a cookie, that can providethe appropriate authentication credentials to access the user account.

At block 706, the network-based application can receive input to accessfunctions associated with an offline feature set. The network-basedapplication can be configured to implement functions associated withapplication information and user information based on the input receivedfrom a user. The network-based application has access to the applicationinformation and user information stored in the application cache. Theoffline feature set can be a subset of the functions and contentassociated with the online feature set. The network-based applicationcan access user information in order to perform functions that areassociated with a specific user account. The user information stored inthe application cache can provide the network-based application withsufficient information to implement specific functions related to thefinancial accounts associated with the user account.

At block 708, the network-based application can provide a computerreadable code associated with the user account that is configured tointeract with a point-of-sale terminal. In some embodiments, thenetwork-based application is configured to generate the computerreadable code based on the information stored in the application cache.In some embodiments, the computer readable code is generated by theinteractive computing system and provided to the network-basedapplication, which is stored in the application cache. The computerreadable code can provide a point-of-sale terminal with sufficientinformation to approve or deny a transaction associated with thecomputer readable code. The point-of-sale terminal can communicate withthe interactive computing system to approve or deny the transactionbased on the information provided by the network-based application. Atblock 710 the process ends.

It is to be understood that not necessarily all objects or advantagesmay be achieved in accordance with any particular embodiment describedherein. Thus, for example, those skilled in the art will recognize thatcertain embodiments may be configured to operate in a manner thatachieves or optimizes one advantage or group of advantages as taughtherein without necessarily achieving other objects or advantages as maybe taught or suggested herein.

All of the processes described herein may be embodied in, and fullyautomated via, software code modules executed by a computing system thatincludes one or more general purpose computers or processors. The codemodules may be stored in any type of non-transitory computer-readablemedium or other computer storage device. Some or all the methods mayalternatively be embodied in specialized computer hardware. In addition,the components referred to herein may be implemented in hardware,software, firmware or a combination thereof.

Many other variations than those described herein will be apparent fromthis disclosure. For example, depending on the embodiment, certain acts,events, or functions of any of the algorithms described herein can beperformed in a different sequence, can be added, merged, or left outaltogether (e.g., not all described acts or events are necessary for thepractice of the algorithms). Moreover, in certain embodiments, acts orevents can be performed concurrently, e.g., through multi-threadedprocessing, interrupt processing, or multiple processors or processorcores or on other parallel architectures, rather than sequentially. Inaddition, different tasks or processes can be performed by differentmachines and/or computing systems that can function together.

The various illustrative logical blocks, modules, and algorithm elementsdescribed in connection with the embodiments disclosed herein can beimplemented as electronic hardware, computer software or combinations ofboth. To clearly illustrate this interchangeability of hardware andsoftware, various illustrative components, blocks, modules and elementshave been described above generally in terms of their functionality.Whether such functionality is implemented as hardware or softwaredepends upon the particular application and design constraints imposedon the overall system. The described functionality can be implemented invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the disclosure.

The various illustrative logical blocks and modules described inconnection with the embodiments disclosed herein can be implemented orperformed by a machine, such as a general purpose processor, a digitalsignal processor (DSP), an application specific integrated circuit(ASIC), a field programmable gate array (FPGA) or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general purpose processor can be a microprocessor,but in the alternative, the processor can be a controller,microcontroller, or state machine, combinations of the same, or thelike. A processor can include electrical circuitry configured to processcomputer-executable instructions. In another embodiment, a processorincludes an FPGA or other programmable device that performs logicoperations without processing computer-executable instructions. Aprocessor can also be implemented as a combination of computing devices,e.g., a combination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration. Although described hereinprimarily with respect to digital technology, a processor may alsoinclude primarily analog components. For example, some or all of thesignal processing algorithms described herein may be implemented inanalog circuitry or mixed analog and digital circuitry. A computingenvironment can include any type of computer system, including, but notlimited to, a computer system based on a microprocessor, a mainframecomputer, a digital signal processor, a portable computing device, adevice controller, or a computational engine within an appliance, toname a few.

The elements of a method, process, or algorithm described in connectionwith the embodiments disclosed herein can be embodied directly inhardware, in a software module stored in one or more memory devices andexecuted by one or more processors, or in a combination of the two. Asoftware module can reside in RAM memory, flash memory, ROM memory,EPROM memory, EEPROM memory, registers, hard disk, a removable disk, aCD-ROM, or any other form of non-transitory computer-readable storagemedium, media, or physical computer storage known in the art. An examplestorage medium can be coupled to the processor such that the processorcan read information from, and write information to, the storage medium.In the alternative, the storage medium can be integral to the processor.The storage medium can be volatile or nonvolatile. The processor and thestorage medium can reside in an ASIC. The ASIC can reside in a userterminal. In the alternative, the processor and the storage medium canreside as discrete components in a user terminal.

Conditional language such as, among others, “can,” “could,” “might” or“may,” unless specifically stated otherwise, are otherwise understoodwithin the context as used in general to convey that certain embodimentsinclude, while other embodiments do not include, certain features,elements and/or steps. Thus, such conditional language is not generallyintended to imply that features, elements and/or steps are in any wayrequired for one or more embodiments or that one or more embodimentsnecessarily include logic for deciding, with or without user input orprompting, whether these features, elements and/or steps are included orare to be performed in any particular embodiment.

Disjunctive language such as the phrase “at least one of X, Y, or Z,”unless specifically stated otherwise, is otherwise understood with thecontext as used in general to present that an item, term, etc., may beeither X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z).Thus, such disjunctive language is not generally intended to, and shouldnot, imply that certain embodiments require at least one of X, at leastone of Y, or at least one of Z to each be present.

Any process descriptions, elements or blocks in the flow diagramsdescribed herein and/or depicted in the attached figures should beunderstood as potentially representing modules, segments, or portions ofcode which include one or more executable instructions for implementingspecific logical functions or elements in the process. Alternateimplementations are included within the scope of the embodimentsdescribed herein in which elements or functions may be deleted, executedout of order from that shown, or discussed, including substantiallyconcurrently or in reverse order, depending on the functionalityinvolved as would be understood by those skilled in the art.

Unless otherwise explicitly stated, articles such as “a” or “an” shouldgenerally be interpreted to include one or more described items.Accordingly, phrases such as “a device configured to” are intended toinclude one or more recited devices. Such one or more recited devicescan also be collectively configured to carry out the stated recitations.For example, “a processor configured to carry out recitations A, B andC” can include a first processor configured to carry out recitation Aworking in conjunction with a second processor configured to carry outrecitations B and C.

It should be emphasized that many variations and modifications may bemade to the above-described embodiments, the elements of which are to beunderstood as being among other acceptable examples. All suchmodifications and variations are intended to be included herein withinthe scope of this disclosure and protected by the following claims.

What is claimed is:
 1. A system comprising: a data store configured tostore user account information associated with a plurality of useraccounts; an application module configured to provide network-basedaccess for a user device to a network-based application, thenetwork-based application configured to: receive and store user accountinformation in an application cache of the user device in an onlinemode, wherein in the online mode the network application is incommunication with the interactive computing system; and provide acomputer readable code configured to communicate transaction informationassociated with one of the plurality of user accounts to a point-of-saleterminal in an offline mode, wherein the transaction information isbased, at least in part on the user account information stored in theapplication cache, wherein in the offline mode the network applicationis not in communication with the interactive computing system; a useraccount module configured to: receive the transaction information fromthe point of sale terminal requesting authorization for a transaction;determine whether to authorize the transaction based, at least in part,on user account information associated with the user account indentifiedby the transaction information; and provide a response to the point ofsale terminal based on the determination.
 2. The system of claim 1,wherein the transaction information comprises a card identifierassociated with a financial account stored within the user account. 3.The system of claim 1, wherein the computer readable code is anoptically readable code.
 4. The method of claim 5, wherein thetransaction is a purchase at a food service establishment.
 5. A computerimplemented method comprising: receiving, by a network-basedapplication, user account information from an interactive computingsystem associated with a user account, wherein the network-basedapplication is operating within a browser on a user device, wherein thenetwork-based application is in communication with the interactivecomputing system over a network; storing the user information in anapplication cache of the browser; receiving, by the network-basedapplication, user input requesting a computer readable code associatedwith the user information, wherein the network-based application is notin communication with the interactive computing system when the userinput is received; and providing, by the network-based application, thecomputer readable code for communication to a point-of-sale terminal,wherein the computer readable code comprises user information associatedwith the user account, wherein the point-of-sale terminal is configuredto communicate with the interactive computing system to authorize thetransaction based, at least in part, on the user information.
 6. Themethod of claim 5, wherein the computer readable code is an opticallyreadable code.
 7. The method of claim 5, wherein the computer readablecode is a radio frequency code.
 8. The method of claim 7 furthercomprising transmitting the computer readable code to the point-of-saleterminal.
 9. The method of claim 5, wherein the user informationcomprises a card identifier.
 10. The method of claim 5 furthercomprising receiving confirmation from the point-of-sale terminal thatthe transaction is successful and updating the user information withinthe network-based application.
 11. The method of claim 5, wherein thetransaction is a purchase at a food service establishment.
 12. Themethod of claim 5, wherein the user information is associated with avirtual card having a monetary balance.
 13. The method of claim 5,wherein the user information is associated with a virtual card having anon-monetary account balance.
 14. The method of claim 5 furthercomprising generating the computer generated code based, at least inpart, on the user information stored in the application cache.
 15. Themethod of claim 5, wherein the point-of-sale terminal is configured torequest authorization for the transaction from the interactive computingsystem.
 16. A computer-readable, non-transitory storage medium storingcomputer executable instructions that, when executed by a browseroperating on one or more computing devices, configure the browser toexecute modules comprising: a network-based application moduleconfigured to operate in an online mode and an offline mode, wherein thenetwork-based application module is configured to be in the online modewhen the network-based application module is in communication with aninteractive computing system over a network, and wherein thenetwork-based application module is configured to be in the offline modewhen the network-based application module is not in communication withthe interactive computing system: in the online mode the network-basedapplication module is configured to: receive user account informationfrom the interactive computing system associated with a user account;store the user account information in an application cache of thebrowser; in the offline mode the network-based application is configuredto: receive a request to provide a computer readable code based, atleast in part, on the user information; and provide the computerreadable code configured to communicate transaction information to apoint-of-sale terminal such that it can authorize a transaction, whereinthe transaction information comprises, at least a portion of, the useraccount information.
 17. The storage medium of claim 16, wherein thecomputer readable code is an optically readable code.
 18. The storagemedium of claim 16, wherein the computer readable code is a radiofrequency code.
 19. The storage medium of claim 16, wherein thetransaction information comprises a card identifier.
 20. The storagemedium of claim 16, wherein the network application module is furtherconfigured to receive confirmation from the point-of-sale terminal thatthe transaction is successful and update the user information within thenetwork-based application.
 21. The storage medium of claim 16, whereinthe transaction is a purchase at a food service establishment.
 22. Thestorage medium of claim 16, wherein the transaction information isassociated with a virtual card having a monetary balance.
 23. Thestorage medium of claim 16, wherein the transaction information isassociated with a virtual card having a non-monetary balance.